iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
自我挑戰組

新手挑戰LeetCode系列 第 1

Day1 新手挑戰LeetCode - 1. Two Sum

  • 分享至 

  • xImage
  •  

前言

筆者這一、兩個月才開始寫LeetCode,常需要花很久的時間才寫得出來,如果寫不出來,也會去參考別人的解題思路與方法,所以想透過此次鐵人賽紀錄自己寫LeetCode的過程,並督促一下自己。因此,也鼓勵如果有想要寫LeetCode的朋友們,可以註冊LeetCode,一起刷題、交流唷!

這30天挑戰的題目來源是在LeetCode中Top Interview Questions的Easy等級,連結為https://leetcode.com/problem-list/top-interview-questions/?page=1&difficulty=EASY

題目

https://ithelp.ithome.com.tw/upload/images/20220914/20148585FkJTTnh43C.png

翻譯

題目給一個整數的陣列nums和一個整數target,當陣列nums中兩個數字相加等於target時,則回傳兩個數字在陣列nums的位置。

你可能會假設每個輸入都只有一個解法,並且你可能不會重複使用相同的元素。

你可以按任何順序來回傳答案。

範例

https://ithelp.ithome.com.tw/upload/images/20220914/20148585yW5rlTLgsR.png

限制條件

https://ithelp.ithome.com.tw/upload/images/20220914/20148585rBawTHAbnh.png

思路

先從陣列中選取一個數字,再去與後面的數字各別相加,如果相加等於target,就回傳兩個數字的位置,如果相加不等於target,就依序選取陣列中的數字,再去與後面的數字各別相加。

因此,使用兩個for迴圈跑陣列nums的數字,從 i = 0 開始跑第一個迴圈,再從 j = i + 1 開始跑第二個迴圈,當符合兩個數字相加等於target,就回傳兩個數字的位置([i, j])。

解題

/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function(nums, target) {
    
    for (let i = 0; i < nums.length; i++) {
        
        for (let j = i + 1; j < nums.length; j++) {
            if (nums[i] + nums[j] === target) {
                return [i, j]
            }
        }
    }
};

題目連結

https://leetcode.com/problems/two-sum/

快來一起動手寫LeetCode吧!

文章同步更新於medium


系列文
新手挑戰LeetCode1
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言